﻿
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace 凯蒽斯.page
{
    /// <summary>
    /// RangeSettingsControl.xaml 的交互逻辑
    /// </summary>
    public partial class RangeSettingsControl : UserControl
    {
        private string[] buttonNames = new string[512];
        public RangeSettingsControl()
        {
            InitializeComponent();
            Generate256Buttons();
            // 延迟到控件加载完成后刷新布局（确保尺寸已计算）
            Loaded += (s, e) =>
            {
                RangeSettingsContainer.UpdateLayout();
                // 验证总高度是否正确
                var totalHeight = RangeSettingsContainer.ActualHeight;
                System.Diagnostics.Debug.WriteLine($"总高度：{totalHeight}"); // 应≈26行×30=780px
            };
        }
        private void Generate256Buttons()
        {
            for (int i = 0; i < 256; i++)
            {
                // 1. 创建外层Border（边框容器）
                Border border = new Border();
                border.Margin = new Thickness(1);  // 元素间间隔
                border.BorderBrush = Brushes.Gray;

                // 2. 创建容器控件（用于容纳TextBlock和TextBox）
                StackPanel container = new StackPanel();
                container.Orientation = Orientation.Horizontal;  // 横向排列两个元素
                container.Margin = new Thickness(2);  // 容器内边距，避免内容贴边

                // 3. 创建TextBlock（显示编号，如"1#"）
                TextBlock txt = new TextBlock();
                txt.Name = $"txtAlarm{i}";
                txt.Text = $"{i + 1}#";
                txt.TextAlignment = TextAlignment.Center;
                txt.VerticalAlignment = VerticalAlignment.Center;
                txt.FontSize = 11;
                txt.Width = 20;  // 固定宽度，避免文字过长挤压输入框

                // 4. 创建TextBox（输入框）
                TextBox box = new TextBox();
                box.Name = $"txtInput{i}";  // 给输入框也设置唯一名称
                box.Margin = new Thickness(2, 0, 0, 0);  // 与TextBlock保持间隔
                box.FontSize = 11;
                box.Width = 100;  // 固定输入框宽度
                box.TextAlignment = TextAlignment.Center;  // 输入内容居中

                // 5. 将TextBlock和TextBox放入容器
                container.Children.Add(txt);
                container.Children.Add(box);

                // 6. 将容器设为Border的Child（Border只能有一个直接子元素）
                border.Child = container;

                // 7. 注册名称并添加到WrapPanel
                this.RegisterName(txt.Name, txt);
                this.RegisterName(box.Name, box);  // 注册输入框名称（如需后续操作）
                RangeSettingsContainer.Children.Add(border);
            }
        }
        // 循环添加完所有元素后调用
        
    }
}
